#没有解决如果联系人中没有芒果销售商的情况
from collections import deque
#定义判断是否是芒果销售商的函数
def person_is_seller(name):
    # if (name==""):
    #     return False
    if name[-1]=='m':
        return True
    return False
#定义search方法
def search():
    #通过字典描述图结构
    graph = {}
    graph["you"] = ["alice", "bob", "claire"]
    graph["bob"] = ["anuj", "peggy"]
    graph["alice"] = ["peggy"]
    graph["claire"] = ["tho", "jonny"]
    graph["anuj"] = []
    graph["peggy"] = []
    graph["tho"] = []
    graph["jonny"] = []
    #定义搜索队列
    search_deque=deque()
    #初始化搜索队列
    search_deque+=graph["you"]
    #定义一个列表，用于存放已经检验的成员，防止重复检验
    searched=[]
    #循环查找
    while(search_deque):
        #从队列头取出索要验证的对象
        person=search_deque.popleft()
        #判断是否已经判断过
        if person not in searched:
            #添加到已经查找列表中
            searched.append(person)
            #符合条件，打印语句，返回True
            if (person_is_seller(person)):
                print(person+" is a mango seller!")
                return True
            #不符合条件，将其子关系添加到检索队列的最后方
            else:
                #append方法是加入某个元素，+号是吸收另外一个列表
                search_deque+=(graph[person])
    #循环跑完，没有返回，说明没有符合要求的值
    print("there is no mango seller!")
    return False
    
    
def main():
    # 定义图内的节点
    search()
if __name__ == "__main__":
    main()
